Background
Data is gathered from the ACLED (Armed Conflict Location and Event Data) API and the Daily Global Historical Climatology Network (GHCN-DAILY). ACLED combs news and media sources to record protests, riots, civil unrest, armed conflict, etc., updating on a weekly basis. GHCN-Daily records precipitation and temperature for locations around the planet every day using surface-based weather stations. Both APIs offer historical as well as current data and are publicly available.
The page below currently uses cached data from 12/26/2024 although it is capable of fetching data from the past year from each of these sources to update on a rolling basis.
First, let’s consider whether there is sufficient variation in our outcome of interest, protest frequency, and our covariates of interest, adverse weather such as rain and heat, which could allow for a relationship between these factors.
Descriptive Statistics
Protest Frequencies
As of writing (12/26/24), the map and bar plot depict wide variation in protest frequency by location in México. The variation mirrors population density. The most important centers for protest are in the capital, México City, and east-central states like Veracruz.
Protest frequency has also changed over time during the past year, showing notable lows around the very end of both 2023 and 2024.
Weather Patterns
<branca.element.Element at 0x1aaaf7c5ab0>
<branca.element.Element at 0x1aaa7b6f310>
Mexico is varied in terms of climate, as seen above. The south and the coasts tend to be wetter and hotter than the mountainous interior, perhaps making for more challenging circumstances for demonstrations.
Regression Analysis
To quantify the association between protest activity and weather conditions, the unit of analysis is defined as a given weather region on a given day. Weather regions are defined by the most proximate weather station – wherever is closest to a weather station is that weather station’s corresponding region. The map above uses color to show which weather region each protest falls within.
In the regression analysis, the weather region is also used for a fixed effect to help control for factors such as population density, general climate (as opposed to the covariate of interest, current weather conditions), proximity to important government offices, etc. The outcome variable used is a binary indicator of whether any protest occurred in that weather region on that day.
As seen in the table below, the coefficient on precipitation (measured in tenths of millimeters), is very nearly 0 and not statistically significant. The coefficient on average daily temperature (measured in tenths of degrees Celsius) is significant, though very small, however. In a country where heat is often an issue, this effect is curious and requires more careful exploration.
There are several possible explanations for the failure to replicate prior results in the current analysis. Firstly, though many of the weather regions are plausible, several are not, leaving uncertainty as to whether the weather conditions at the weather station were similar to the weather conditions at the protest (sometimes quite far away). Secondly, in most of México, most days there are no protests so the logistic model may have struggled to account for an outcome that is rare in the vast majority of locations, but very common in just a handful of outlying locations. Moreover, the model used regional fixed effects but did not incorporate other controls (whether constant, e.g. population, or time-varying, e.g. unemployment rates or election cycle timing).Finally, much of México (perhaps especially its most populated areas), experiences rain fairly infrequently or for just a brief period of time. This may lead to less opportunity for rain (a common detractor from protest activity elsewhere) to have the same effect here.
Warning: Maximum number of iterations has been exceeded. Current function value: 0.344130 Iterations: 35
| Odds Ratio | 2.5% CI | 97.5% CI | P>|z| | |
|---|---|---|---|---|
| const | 0.315 | 0.194 | 0.511 | 0.000 |
| prcp | 1.000 | 1.000 | 1.000 | 0.736 |
| tavg | 1.004 | 1.003 | 1.005 | 0.000 |
| AEROP.INTERNACIONAL | 0.237 | 0.146 | 0.387 | 0.000 |
| ALTAR (OBS) | 0.016 | 0.004 | 0.067 | 0.000 |
| CHETUMAL INTL | 0.105 | 0.059 | 0.184 | 0.000 |
| CHIHUAHUA | 0.428 | 0.250 | 0.735 | 0.002 |
| CHILPANCINGO RO. | 1.283 | 0.822 | 2.004 | 0.273 |
| CHOIX | 0.120 | 0.068 | 0.214 | 0.000 |
| CIUDAD CONSTITUCION | 0.000 | 0.000 | 0.000 | 0.000 |
| CIUDAD GUZMAN JAL. | 0.007 | 0.001 | 0.050 | 0.000 |
| CIUDAD OBREGON SON. | 0.009 | 0.001 | 0.069 | 0.000 |
| CIUDAD VICTORIA | 0.174 | 0.105 | 0.287 | 0.000 |
| COATZACOALCOS VER. | 0.111 | 0.060 | 0.206 | 0.000 |
| COLIMA | 0.146 | 0.082 | 0.259 | 0.000 |
| COLONIA JUAN CARRAS | 0.241 | 0.148 | 0.390 | 0.000 |
| COLOTLAN JAL. | 0.015 | 0.004 | 0.064 | 0.000 |
| COMITAN CHIS. | 0.049 | 0.023 | 0.102 | 0.000 |
| CUERNAVACA | 0.661 | 0.419 | 1.043 | 0.075 |
| CULIACAN INTL | 0.409 | 0.253 | 0.661 | 0.000 |
| DURANGO DGO. | 0.311 | 0.190 | 0.510 | 0.000 |
| EJIDO NUEVO LEON (OBS) | 0.885 | 0.554 | 1.413 | 0.609 |
| EMPALME SON. | 0.011 | 0.003 | 0.037 | 0.000 |
| FELIPE CARRILLO PUERTO (OBS) | 0.018 | 0.006 | 0.051 | 0.000 |
| FRANCISCO SARABIA | 0.313 | 0.196 | 0.498 | 0.000 |
| GENERAL IGNACIO P GARCIA INTL | 0.289 | 0.174 | 0.483 | 0.000 |
| GUADALAJARA | 0.802 | 0.510 | 1.262 | 0.341 |
| GUANAJUATO | 0.189 | 0.108 | 0.333 | 0.000 |
| HACIENDA YLANG YLANG VERACRUZ | 0.198 | 0.120 | 0.327 | 0.000 |
| HERMANOS SERDAN INTL | 1.038 | 0.660 | 1.635 | 0.871 |
| HIDALGO DEL PARRAL CHIH. | 0.008 | 0.002 | 0.035 | 0.000 |
| HUAJUAPAN DE LEON (DGE) | 0.116 | 0.066 | 0.205 | 0.000 |
| INGENIERO ALBERTO ACUNA ONGAY | 0.255 | 0.155 | 0.421 | 0.000 |
| JALAPA VER. | 1.560 | 0.998 | 2.440 | 0.051 |
| JESUS TERAN INTL | 0.055 | 0.026 | 0.115 | 0.000 |
| LA PAZ (CITY) | 0.258 | 0.161 | 0.412 | 0.000 |
| LAGOS DE MORENO JAL. | 0.190 | 0.086 | 0.423 | 0.000 |
| LORETO | 0.004 | 0.000 | 0.026 | 0.000 |
| MANZANILLO | 0.030 | 0.012 | 0.072 | 0.000 |
| MATLAPA S.L.P. | 0.157 | 0.087 | 0.286 | 0.000 |
| MEXICO CITY | 6.786 | 4.169 | 11.048 | 0.000 |
| MONCLOVA | 0.109 | 0.063 | 0.188 | 0.000 |
| MONTERREY (CITY) | 0.521 | 0.327 | 0.832 | 0.006 |
| MORELIA MICH. | 0.677 | 0.428 | 1.069 | 0.094 |
| NUEVA CASAS GRANDES | 0.078 | 0.042 | 0.146 | 0.000 |
| OAXACA OAX. | 0.638 | 0.405 | 1.005 | 0.053 |
| ORIZABA | 1.180 | 0.755 | 1.845 | 0.468 |
| PACHUCA HGO. | 0.996 | 0.627 | 1.584 | 0.987 |
| PIEDRAS NEGRAS (OBS) | 0.071 | 0.039 | 0.130 | 0.000 |
| PONCIANO ARRIAGA INTL | 0.180 | 0.106 | 0.306 | 0.000 |
| PROGRESO | 0.014 | 0.004 | 0.047 | 0.000 |
| PUERTO ANGEL OAX. | 0.030 | 0.013 | 0.066 | 0.000 |
| PUERTO PENASCO SON. | 0.000 | 0.000 | 0.000 | 0.000 |
| QUERETARO INTERCONTINENTAL | 0.207 | 0.123 | 0.348 | 0.000 |
| RIO VERDE S.L.P. | 0.000 | 0.000 | 0.000 | 0.000 |
| SALINA CRUZ | 0.077 | 0.038 | 0.156 | 0.000 |
| SALTILLO | 0.140 | 0.080 | 0.246 | 0.000 |
| SN. CRISTOBAL LAS CASAS CHIS | 0.255 | 0.153 | 0.426 | 0.000 |
| SOMBRERETE ZAC. | 0.010 | 0.002 | 0.043 | 0.000 |
| SOTO LA MARINA (OBS) | 0.095 | 0.052 | 0.172 | 0.000 |
| TAMPICO TAMPS | 0.325 | 0.205 | 0.516 | 0.000 |
| TAPACHULA CHIS | 0.059 | 0.031 | 0.115 | 0.000 |
| TEMOSACHI (OBS) | 0.000 | 0.000 | 0.000 | 0.000 |
| TEMOSACHIC | 0.000 | 0.000 | 0.000 | 0.000 |
| TEPIC (OBS) | 0.040 | 0.019 | 0.084 | 0.000 |
| TLAXCALA DE XICONTECATL (DGE) | 0.140 | 0.079 | 0.249 | 0.000 |
| TOLUCA (OBS) | 0.616 | 0.377 | 1.006 | 0.053 |
| TORREON INTL | 0.219 | 0.135 | 0.355 | 0.000 |
| TULANCINGO HGO. | 0.143 | 0.080 | 0.254 | 0.000 |
| TUXPAN.VER. | 0.237 | 0.132 | 0.426 | 0.000 |
| VALLADOLID YUC. | 0.181 | 0.111 | 0.296 | 0.000 |
| VILLAHERMOSA TAB. | 0.464 | 0.290 | 0.745 | 0.001 |
| ZACATECAS ZAC. (LA BUFA ZAC | 0.395 | 0.243 | 0.644 | 0.000 |
| ZAMORA | 0.200 | 0.120 | 0.335 | 0.000 |
| Log-Likelihood | -6757.678 |
| Pseudo R-squared | 0.211 |
| AIC | 13663.357 |
| BIC | 14246.860 |
| No. Observations | 19637.000 |